//解法1  传统思想
//用一个容器去存储遍历过的值 
// 判断容器有没有当前值 
// 没有就存起来 
// 有就返回true
var hasCycle = function(head) {
    let set = new Set()
    while(head.next){
        if(set.has(head)){
            return true
        }
        set.add(head)
        head = head.next
    }
    return false 
}
//解法2  双指针思想    因为环形赛道上 两个人无止尽的跑总会相遇的
let hasCycle1 = function(head){
    let fast = head
    let slow = head
    while(fast && fast.next){
        fast = fast.next.next
        slow = slow.next
        if(slow == fast) return true
    }
    return false
}